﻿namespace WMS6.Services
{
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.ServiceModel;
    using WMS6.DataEntity;

    [ServiceContract(Namespace="WMS6.Services")]
    public interface ITransportMgtDetailService
    {
        [OperationContract]
        string DeleteDeliveryOrderDetailInfo(List<string> deliveryOrderDetailIDs, List<string> lineIDs, PubParasInfo pubParasInfo);
        [OperationContract]
        string DeleteDispatchDetailInfo(List<string> dispatchDetailInfoIDs, List<string> lineIDs, PubParasInfo pubParasInfo);
        [OperationContract]
        string DeletePodDetailInfo(List<string> podIDs, List<string> lineIDs, PubParasInfo pubParasInfo);
        [OperationContract]
        DataSet GetAllDeliveryOrderDetailInfo(PubParasInfo pubParasInfo);
        [OperationContract]
        DataSet GetAllDispatchDetailInfo(PubParasInfo pubParasInfo);
        [OperationContract]
        DataSet GetAllPodDetailInfo(PubParasInfo pubParasInfo);
        [OperationContract]
        List<DeliveryOrderAndDispatchDataInfo> GetDeliveryOrderAndDispatchDataInfoListByIDs(List<string> deliveryOrderIDs, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(DeliveryOrderDetailInfo))]
        DeliveryOrderDetailInfo GetDeliveryOrderDetailInfoByID(string deliveryOrderID, string lineID, PubParasInfo pubParasInfo);
        [OperationContract]
        List<DeliveryOrderDetailInfo> GetDeliveryOrderDetailInfoListByID(string deliveryOrderID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(DispatchDetailInfo)), OperationContract]
        DispatchDetailInfo GetDispatchDetailInfoByID(string dispatchDetailInfoID, string lineID, PubParasInfo pubParasInfo);
        [OperationContract]
        List<DispatchDetailInfo> GetDispatchDetailInfoListByID(string dispatchDetailInfoID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(PodDetailInfo)), OperationContract]
        PodDetailInfo GetPodDetailInfoByID(string podID, string lineID, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PodDetailInfo))]
        List<PodDetailInfo> GetPodDetailInfoListByID(string podID, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(DeliveryOrderDetailInfo)), OperationContract]
        string InsertDeliveryOrderDetailInfo(DeliveryOrderDetailInfo deliveryOrderDetailInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(DispatchDetailInfo)), OperationContract]
        string InsertDispatchDetailInfo(DispatchDetailInfo dispatchDetailInfo, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PodDetailInfo))]
        string InsertPodDetailInfo(PodDetailInfo podDetailInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(DeliveryOrderDetailInfo)), OperationContract]
        string UpdateDeliveryOrderDetailInfo(DeliveryOrderDetailInfo deliveryOrderDetailInfo, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(DispatchDetailInfo)), OperationContract]
        string UpdateDispatchDetailInfo(DispatchDetailInfo dispatchDetailInfo, PubParasInfo pubParasInfo);
        [OperationContract, ServiceKnownType(typeof(PodDetailInfo))]
        string UpdatePodDetailInfo(PodDetailInfo podDetailInfo, PubParasInfo pubParasInfo);
    }
}

